Web API হলো একটি ফ্রেমওয়ার্ক যা HTTP অনুরোধ (GET, POST, PUT, DELETE) ব্যবহার করে ডেটা অ্যাক্সেস এবং ম্যানিপুলেশন সাপোর্ট করে। ASP.Net Core এর মাধ্যমে আপনি খুব সহজেই Web API তৈরি করতে পারেন, যা ক্লায়েন্ট-সাইড অ্যাপ্লিকেশন বা অন্যান্য সার্ভিসের সাথে ইন্টারঅ্যাক্ট করার জন্য ডেটা প্রদান করে।
ASP.Net Core Web API প্রজেক্ট তৈরি করতে, Visual Studio বা কমান্ড লাইন ব্যবহার করা যেতে পারে।
dotnet new webapi -n MyWebApi
Web API তৈরি করতে হলে আপনাকে একটি Controller তৈরি করতে হবে যা HTTP অনুরোধের জন্য অ্যাকশন মেথড ধারণ করবে। Controller এ [ApiController] অ্যাট্রিবিউট ব্যবহার করা হয়, যা API রাউটিং এবং ইনপুট মডেল ভ্যালিডেশন স্বয়ংক্রিয়ভাবে পরিচালনা করে।
এখানে একটি ProductController তৈরি করা হচ্ছে যা GET এবং POST HTTP রিকোয়েস্ট হ্যান্ডেল করবে।
using Microsoft.AspNetCore.Mvc;
namespace MyWebApi.Controllers
{
[ApiController]
[Route("api/[controller]")]
public class ProductController : ControllerBase
{
private static List<Product> products = new List<Product>
{
new Product { Id = 1, Name = "Product 1", Price = 100 },
new Product { Id = 2, Name = "Product 2", Price = 200 }
};
// GET api/product
[HttpGet]
public IActionResult Get()
{
return Ok(products);
}
// POST api/product
[HttpPost]
public IActionResult Post([FromBody] Product product)
{
if (product == null)
{
return BadRequest("Product data is null");
}
products.Add(product);
return CreatedAtAction(nameof(Get), new { id = product.Id }, product);
}
}
}
এখানে:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
ASP.Net Core Web API তে Routing স্বয়ংক্রিয়ভাবে কনফিগার করা হয়। কন্ট্রোলারের অ্যাকশন মেথডের জন্য HTTP অনুরোধের রাউটিং [Route] অ্যাট্রিবিউট দিয়ে করা হয়। এর ফলে নির্দিষ্ট URL প্যাটার্নের মাধ্যমে API অ্যাকশন মেথড কল করা যায়।
ASP.Net Core Web API অ্যাপ্লিকেশনের রাউটিং কনফিগারেশন Startup.cs ফাইলে করা হয়।
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
এখানে MapControllers()
মেথডটি অ্যাপ্লিকেশনকে জানায় যে, কন্ট্রোলার রাউটিং কার্যকর করতে হবে।
ASP.Net Core Web API তে বিভিন্ন HTTP স্ট্যাটাস কোড এবং ডেটা রিটার্ন করার পদ্ধতি রয়েছে। কিছু সাধারণ HTTP স্ট্যাটাস কোড:
[HttpGet("{id}")]
public IActionResult GetProduct(int id)
{
var product = products.FirstOrDefault(p => p.Id == id);
if (product == null)
{
return NotFound(); // 404 Not Found
}
return Ok(product); // 200 OK
}
ASP.Net Core Web API সাধারণত JSON ফরম্যাটে ডেটা রিটার্ন করে, কারণ এটি ওয়েব অ্যাপ্লিকেশন ও মোবাইল অ্যাপ্লিকেশনগুলির মধ্যে ডেটা এক্সচেঞ্জের জন্য একটি জনপ্রিয় ফরম্যাট।
ASP.Net Core স্বয়ংক্রিয়ভাবে JSON কনভার্সন হ্যান্ডল করে। আপনি কোনো মডেল রিটার্ন করলে তা JSON ফরম্যাটে রিটার্ন হবে।
public class ProductController : ControllerBase
{
[HttpGet]
public IActionResult GetAllProducts()
{
var products = new List<Product>
{
new Product { Id = 1, Name = "Product A", Price = 100 },
new Product { Id = 2, Name = "Product B", Price = 200 }
};
return Ok(products); // JSON রিটার্ন হবে
}
}
এখানে Ok(products)
রিটার্ন করলে ডেটা JSON ফরম্যাটে রিটার্ন হবে, যেমন:
[
{
"id": 1,
"name": "Product A",
"price": 100
},
{
"id": 2,
"name": "Product B",
"price": 200
}
]
ASP.Net Web API তৈরি করা খুবই সহজ এবং এটি ক্লায়েন্ট-সাইড অ্যাপ্লিকেশন বা অন্য সার্ভিসগুলির জন্য একটি শক্তিশালী ডেটা এক্সচেঞ্জ প্ল্যাটফর্ম হিসেবে কাজ করে। আপনি API কন্ট্রোলার তৈরি করে, বিভিন্ন HTTP মেথডের মাধ্যমে ডেটা এক্সপোজ করতে পারেন এবং JSON ফরম্যাটে ডেটা রিটার্ন করতে পারেন। Web API তৈরি করার জন্য Routing, Controllers, এবং Action Methods এর সঠিক কনফিগারেশন অত্যন্ত গুরুত্বপূর্ণ।
ASP.Net Web API হলো একটি ফ্রেমওয়ার্ক যা আপনাকে HTTP প্রোটোকল ব্যবহার করে ওয়েব সার্ভিস তৈরি করতে সহায়তা করে। এটি বিভিন্ন ধরনের ক্লায়েন্টের সাথে (যেমন, ব্রাউজার, মোবাইল অ্যাপ্লিকেশন, বা ডেক্সটপ অ্যাপ্লিকেশন) ডেটা এক্সচেঞ্জের জন্য ব্যবহৃত হয়। Web API সাধারণত JSON বা XML ফরম্যাটে ডেটা প্রদান করে, যা সহজেই ক্লায়েন্ট সাইডে প্রক্রিয়া করা যায়। এটি বিশেষ করে RESTful আর্কিটেকচার স্টাইল অনুসরণ করে, যা ওয়েব পরিষেবাগুলোর সাথে কাজ করার জন্য একটি সহজ এবং প্রভাবশালী উপায়।
ASP.Net Web API হলো একটি ফ্রেমওয়ার্ক যা ওয়েব সেবার মাধ্যমে HTTP রিকোয়েস্ট এবং রেসপন্সের উপর ভিত্তি করে ডেটা এক্সচেঞ্জ করার জন্য ব্যবহৃত হয়। এটি একটি HTTP ভিত্তিক API, যা প্রধানত RESTful (Representational State Transfer) পরিষেবা সরবরাহ করতে ব্যবহৃত হয়।
Web API সাধারণত JSON, XML, বা অন্য কোনও ফরম্যাটে ডেটা রিটার্ন করে এবং ক্লায়েন্ট সাইডে তা রেন্ডার করতে সহায়তা করে। Web API কন্ট্রোলার HTTP রিকোয়েস্টের ভিত্তিতে কাজ করে এবং প্রয়োজনীয় রেসপন্স প্রদান করে।
ASP.Net Web API এমন একটি শক্তিশালী টুল যা আধুনিক ওয়েব অ্যাপ্লিকেশন এবং মোবাইল অ্যাপ্লিকেশনের মধ্যে ডেটা এক্সচেঞ্জের জন্য একটি আদর্শ সমাধান প্রদান করে। এটি সিম্পল, ফ্লেক্সিবল এবং স্কেলেবল, যা ডেভেলপারদের দ্রুত এবং কার্যকর সেবা তৈরি করতে সাহায্য করে।
ASP.Net MVC (Model-View-Controller) এবং Web API (Application Programming Interface) হল দুইটি জনপ্রিয় আর্কিটেকচারাল প্যাটার্ন, যেগুলো ASP.Net প্ল্যাটফর্মে ওয়েব অ্যাপ্লিকেশন তৈরি করতে ব্যবহৃত হয়। যদিও এদের মধ্যে কিছু মিল রয়েছে, তবে তাদের উদ্দেশ্য, ব্যবহার এবং কার্যক্রমে কিছু গুরুত্বপূর্ণ পার্থক্যও রয়েছে।
নিচে ASP.Net MVC এবং Web API এর মধ্যে প্রধান পার্থক্যগুলো বিস্তারিতভাবে আলোচনা করা হলো:
/Home/Index
এ HomeController
এর Index
অ্যাকশন মেথড রান করবে।/api/products
রাউটটি GET অথবা POST রিকোয়েস্ট হ্যান্ডল করতে পারে।ASP.Net MVC এবং Web API দুটোই শক্তিশালী টুল, তবে তাদের ব্যবহারের উদ্দেশ্য ও প্রেক্ষিত আলাদা।
ASP.Net Core এ RESTful API তৈরি করা একটি সাধারণ প্রক্রিয়া, যা HTTP প্রোটোকল ব্যবহার করে ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা আদান-প্রদান নিশ্চিত করে। REST (Representational State Transfer) হল একটি আর্কিটেকচারাল স্টাইল, যা HTTP মেথড (GET, POST, PUT, DELETE) ব্যবহার করে রিসোর্সের উপর অপারেশন সম্পাদন করতে দেয়।
RESTful API একটি ওয়েব সার্ভিস যা HTTP মেথডের মাধ্যমে বিভিন্ন রিসোর্সের উপর কাজ করে। RESTful API সাধারণত:
একটি RESTful API ডিজাইন করার জন্য নিম্নলিখিত সুবিধাসমূহ নিশ্চিত করতে হয়:
ASP.Net Core ব্যবহার করে একটি সিম্পল RESTful API তৈরি করা খুবই সহজ। নিচে একটি উদাহরণ দেখানো হলো যেখানে একটি Product
রিসোর্স তৈরি করা হবে এবং CRUD অপারেশন সম্পাদন করা হবে।
.NET CLI:
dotnet new webapi -n ProductApi
Microsoft.EntityFrameworkCore
প্যাকেজ ইনস্টল করতে পারেন ডাটাবেসের সাথে ইন্টিগ্রেশন করার জন্য।Swashbuckle.AspNetCore
প্যাকেজ ইনস্টল করলে আপনি Swagger UI ব্যবহার করে API ডকুমেন্টেশন তৈরি করতে পারবেন।প্রথমে একটি Product
মডেল তৈরি করতে হবে, যা API এ ব্যবহৃত হবে।
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
DbContext ক্লাস তৈরি করে ডাটাবেসে রিসোর্স (এখানে Product
) ব্যবস্থাপনা করা হয়।
using Microsoft.EntityFrameworkCore;
public class AppDbContext : DbContext
{
public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }
public DbSet<Product> Products { get; set; }
}
এখন একটি API কন্ট্রোলার তৈরি করতে হবে, যা HTTP রিকোয়েস্টের জন্য ব্যবহৃত হবে। কন্ট্রোলারটি ControllerBase ক্লাসের মাধ্যমে API রুটিন পরিচালনা করবে।
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
[Route("api/[controller]")]
[ApiController]
public class ProductsController : ControllerBase
{
private readonly AppDbContext _context;
public ProductsController(AppDbContext context)
{
_context = context;
}
// GET: api/products
[HttpGet]
public async Task<ActionResult<IEnumerable<Product>>> GetProducts()
{
return await _context.Products.ToListAsync();
}
// GET: api/products/5
[HttpGet("{id}")]
public async Task<ActionResult<Product>> GetProduct(int id)
{
var product = await _context.Products.FindAsync(id);
if (product == null)
{
return NotFound();
}
return product;
}
// POST: api/products
[HttpPost]
public async Task<ActionResult<Product>> PostProduct(Product product)
{
_context.Products.Add(product);
await _context.SaveChangesAsync();
return CreatedAtAction("GetProduct", new { id = product.Id }, product);
}
// PUT: api/products/5
[HttpPut("{id}")]
public async Task<IActionResult> PutProduct(int id, Product product)
{
if (id != product.Id)
{
return BadRequest();
}
_context.Entry(product).State = EntityState.Modified;
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!_context.Products.Any(e => e.Id == id))
{
return NotFound();
}
else
{
throw;
}
}
return NoContent();
}
// DELETE: api/products/5
[HttpDelete("{id}")]
public async Task<ActionResult<Product>> DeleteProduct(int id)
{
var product = await _context.Products.FindAsync(id);
if (product == null)
{
return NotFound();
}
_context.Products.Remove(product);
await _context.SaveChangesAsync();
return product;
}
}
Startup.cs
ফাইলের মধ্যে API কনফিগারেশন এবং ডাটাবেস কনটেক্সট পরিষেবা যোগ করুন।
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<AppDbContext>(options =>
options.UseInMemoryDatabase("ProductDb")); // In-memory database
services.AddControllers();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
}
এই কন্ট্রোলার এখন GET, POST, PUT, এবং DELETE HTTP মেথডগুলোকে সাপোর্ট করবে:
/api/products
: সমস্ত প্রোডাক্টের তালিকা ফেরত দেয়।/api/products/{id}
: একটি নির্দিষ্ট প্রোডাক্ট ফিরিয়ে দেয়।/api/products
: একটি নতুন প্রোডাক্ট তৈরি করে।/api/products/{id}
: একটি প্রোডাক্ট আপডেট করে।/api/products/{id}
: একটি প্রোডাক্ট মুছে ফেলে।API এর জন্য ডকুমেন্টেশন এবং পরীক্ষা করার সুবিধা দিতে Swagger ব্যবহার করা হয়। Swashbuckle.AspNetCore প্যাকেজটি ইনস্টল করলে Swagger UI স্বয়ংক্রিয়ভাবে তৈরি হয়ে যাবে।
Swashbuckle.AspNetCore
প্যাকেজ ইনস্টল করুন।public void ConfigureServices(IServiceCollection services)
{
services.AddSwaggerGen();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "ProductApi v1"));
}
}
এখন আপনি http://localhost:5000/swagger
URL দিয়ে Swagger UI তে API পরীক্ষা করতে পারবেন।
ASP.Net Core দিয়ে একটি RESTful API তৈরি করতে, আপনাকে প্রথমে একটি মডেল এবং ডাটাবেস কনটেক্সট তৈরি করতে হয়। এরপর, একটি কন্ট্রোলার তৈরি করে HTTP রিকোয়েস্টগুলোর জন্য রুট এবং মেথডগুলো কনফিগার করতে হয়। Swagger UI ব্যবহার করে API ডকুমেন্টেশন এবং পরীক্ষা করা সহজ।
ASP.Net এ API Routing এবং HTTP Methods মূলত Web API এর জন্য ব্যবহৃত হয়। API Routing হল সেই প্রক্রিয়া যার মাধ্যমে একটি HTTP রিকোয়েস্ট নির্দিষ্ট কন্ট্রোলার ও অ্যাকশন মেথডে রুট করে এবং HTTP Methods (GET, POST, PUT, DELETE, ইত্যাদি) ব্যবহারকারী এবং সার্ভারের মধ্যে তথ্যের আদান-প্রদান পরিচালনা করে। এখানে, আমরা ASP.Net Web API এবং ASP.Net Core API তে API Routing এবং HTTP Methods এর ব্যাখ্যা প্রদান করব।
API Routing হল সেই প্রক্রিয়া যার মাধ্যমে রিকোয়েস্ট URL কে কন্ট্রোলার এবং অ্যাকশন মেথডের সাথে মেলানো হয়। ASP.Net এর মধ্যে Routing প্রক্রিয়া কন্ট্রোলারের মেথডে রিকোয়েস্ট পাঠানোর জন্য ব্যবহার করা হয়, এবং API এ সাধারণত এই রাউটিং কনফিগার করা হয় Route Attributes অথবা Route Templates এর মাধ্যমে।
ASP.Net Core API তে Attribute Routing এবং Convention-based Routing উভয়ই সমর্থিত।
ASP.Net Core API তে Attribute Routing ব্যবহার করা হয়, যেখানে রাউটিং কনফিগারেশন কন্ট্রোলারের অ্যাকশন মেথডের উপরই নির্ভর করে। এটি URL প্যাটার্ন নির্দিষ্ট করার জন্য সহজ এবং পরিষ্কার উপায়।
[Route("api/[controller]")]
[ApiController]
public class ProductsController : ControllerBase
{
// GET api/products
[HttpGet]
public IActionResult GetProducts()
{
return Ok(new { message = "Getting all products" });
}
// GET api/products/5
[HttpGet("{id}")]
public IActionResult GetProduct(int id)
{
return Ok(new { message = $"Getting product with ID: {id}" });
}
// POST api/products
[HttpPost]
public IActionResult CreateProduct([FromBody] Product product)
{
return CreatedAtAction(nameof(GetProduct), new { id = product.Id }, product);
}
// PUT api/products/5
[HttpPut("{id}")]
public IActionResult UpdateProduct(int id, [FromBody] Product product)
{
return Ok(new { message = $"Updating product with ID: {id}" });
}
// DELETE api/products/5
[HttpDelete("{id}")]
public IActionResult DeleteProduct(int id)
{
return Ok(new { message = $"Deleting product with ID: {id}" });
}
}
এখানে, Route("api/[controller]")
এর মাধ্যমে ProductsController কন্ট্রোলারের সমস্ত রিকোয়েস্ট /api/products
রুটে যাবে। এবং প্রতিটি HTTP Method (GET, POST, PUT, DELETE) এর জন্য আলাদা রাউট নির্দিষ্ট করা হয়েছে।
Convention-based Routing ASP.Net MVC/Web API তে ব্যবহৃত হয়, যেখানে রাউটিং কনফিগারেশন RouteConfig.cs
ফাইলে করা হয়। এখানে রাউটিং নিয়ম অনুযায়ী URL এবং কন্ট্রোলার একে অপরের সাথে মেলানো হয়।
public class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Conventional Routing
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
এখানে, MapHttpRoute
পদ্ধতি দিয়ে রাউটিং কনফিগার করা হয়েছে। URL এর মধ্যে {controller}
এবং {id}
এর মাধ্যমে কন্ট্রোলার এবং আইডি নির্দিষ্ট করা হয়েছে।
HTTP Methods হল HTTP প্রটোকলের বিভিন্ন কমান্ড, যেগুলি সার্ভার এবং ক্লায়েন্টের মধ্যে তথ্য আদান-প্রদান নিয়ন্ত্রণ করে। Web API তে সাধারণত নিচের HTTP Methods গুলি ব্যবহৃত হয়:
GET হল সবচেয়ে সাধারণ HTTP মেথড, যেটি শুধুমাত্র ডেটা রিট্রিভ (আবশ্যক ডেটা পাওয়া) করার জন্য ব্যবহৃত হয়। এটি সার্ভার থেকে তথ্য পেতে ক্লায়েন্টের রিকোয়েস্ট পাঠায়।
[HttpGet]
public IActionResult GetProducts()
{
var products = productService.GetAllProducts();
return Ok(products); // 200 OK response with product list
}
POST মেথড ব্যবহার করা হয় নতুন তথ্য বা রিসোর্স সার্ভারে পাঠানোর জন্য। এটি সাধারণত ডেটা সাবমিট করার জন্য ব্যবহৃত হয়, যেমন ফর্ম সাবমিট বা নতুন রেকর্ড তৈরি।
[HttpPost]
public IActionResult CreateProduct([FromBody] Product product)
{
var createdProduct = productService.AddProduct(product);
return CreatedAtAction(nameof(GetProduct), new { id = createdProduct.Id }, createdProduct);
}
এখানে, ক্লায়েন্ট একটি POST রিকোয়েস্ট পাঠাচ্ছে যা সার্ভারে নতুন প্রোডাক্ট তৈরি করবে।
PUT মেথড ব্যবহার করা হয় একটি রিসোর্স সম্পূর্ণভাবে আপডেট (replace) করতে। এটি সাধারণত ফুল-রেকর্ড বা প্রোডাক্ট আপডেট করার জন্য ব্যবহৃত হয়।
[HttpPut("{id}")]
public IActionResult UpdateProduct(int id, [FromBody] Product product)
{
var updatedProduct = productService.UpdateProduct(id, product);
return Ok(updatedProduct); // 200 OK with updated product
}
DELETE মেথড ব্যবহার করা হয় রিসোর্স বা ডেটা মুছে ফেলার জন্য। এটি একটি রিকোয়েস্ট পাঠায় যাতে সার্ভার নির্দিষ্ট একটি রিসোর্স (যেমন, ডেটাবেজের রেকর্ড) মুছে ফেলে।
[HttpDelete("{id}")]
public IActionResult DeleteProduct(int id)
{
productService.DeleteProduct(id);
return NoContent(); // 204 No Content, indicating that the resource has been deleted
}
এগুলো ব্যবহার করে আপনি API রিকোয়েস্ট ঠিকমত রুট করতে এবং HTTP Methods দ্বারা ডেটা পরিচালনা করতে পারবেন।
ASP.Net Core Web API একটি শক্তিশালী ফ্রেমওয়ার্ক যা ক্লায়েন্ট (যেমন ওয়েব ব্রাউজার, মোবাইল অ্যাপ, বা অন্য কোনো সার্ভিস) এবং সার্ভারের মধ্যে ডেটা আদান-প্রদান করতে ব্যবহৃত হয়। Web API সাধারণত HTTP প্রোটোকল ব্যবহার করে ডেটা পাঠায় এবং গ্রহণ করে। এটি JSON বা XML ফরম্যাটে ডেটা আদান-প্রদান করে।
ASP.Net Core Web API এর মাধ্যমে ডেটা আদান-প্রদান করতে হলে কিছু সাধারণ ধাপ অনুসরণ করতে হয়:
ASP.Net Core অ্যাপ্লিকেশনে Web API কন্ট্রোলার তৈরি করতে হলে, আপনাকে কন্ট্রোলারে ApiController অ্যাট্রিবিউট ব্যবহার করতে হবে। এটি API-কে RESTful কনভেনশন অনুযায়ী পরিচালনা করতে সহায়তা করে।
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
namespace MyApp.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class ProductsController : ControllerBase
{
private static List<string> products = new List<string> { "Product 1", "Product 2", "Product 3" };
// GET: api/products
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
return Ok(products); // সমস্ত প্রোডাক্টের তালিকা রিটার্ন করা
}
// GET: api/products/1
[HttpGet("{id}")]
public ActionResult<string> Get(int id)
{
if (id < 0 || id >= products.Count)
{
return NotFound(); // ফাইল না পেলে 404 রিটার্ন
}
return Ok(products[id]); // নির্দিষ্ট প্রোডাক্ট রিটার্ন করা
}
// POST: api/products
[HttpPost]
public ActionResult Post([FromBody] string product)
{
products.Add(product);
return CreatedAtAction(nameof(Get), new { id = products.Count - 1 }, product); // নতুন প্রোডাক্ট তৈরি করা
}
// PUT: api/products/1
[HttpPut("{id}")]
public ActionResult Put(int id, [FromBody] string product)
{
if (id < 0 || id >= products.Count)
{
return NotFound();
}
products[id] = product;
return NoContent(); // কোনো কন্টেন্ট রিটার্ন না করে 204 রিটার্ন করা
}
// DELETE: api/products/1
[HttpDelete("{id}")]
public ActionResult Delete(int id)
{
if (id < 0 || id >= products.Count)
{
return NotFound();
}
products.RemoveAt(id);
return NoContent(); // সফলভাবে মুছে ফেলার পরে 204 রিটার্ন করা
}
}
}
এখানে:
HttpGet
, HttpPost
, HttpPut
, এবং HttpDelete
অ্যাট্রিবিউটগুলো HTTP মেথডগুলোর সাথে মিলে কাজ করে।ActionResult
রিটার্ন টাইপটি ব্যবহারকারীর রিকোয়েস্টের সাথে সঠিক HTTP রেসপন্স কড (যেমন 200, 201, 404, 204) রিটার্ন করতে সাহায্য করে।কিছু ক্ষেত্রে, ডেটা আদান-প্রদান করতে হলে আপনাকে একটি মডেল তৈরি করতে হতে পারে, যেটি Request এবং Response এর ডেটা স্ট্রাকচার নির্ধারণ করবে।
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
এখন এই মডেল ক্লাসটি API কন্ট্রোলারে ব্যবহার করতে পারবেন।
[HttpPost]
public ActionResult Post([FromBody] Product product)
{
products.Add(product.Name); // প্রোডাক্টের নাম যোগ করা
return CreatedAtAction(nameof(Get), new { id = products.Count - 1 }, product);
}
এখানে, Product
মডেলটি JSON ফরম্যাটে Request Body থেকে ডেটা রিসিভ করতে ব্যবহৃত হচ্ছে এবং এটি API-এ পাঠানো ডেটার স্ট্রাকচার নির্ধারণ করছে।
ASP.Net Core অ্যাপ্লিকেশন সেটআপের সময় Startup.cs ফাইলে কিছু কনফিগারেশন করতে হয়, যেমন Web API সেবা নিবন্ধন এবং রাউটিং কনফিগারেশন।
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers(); // Web API কন্ট্রোলার সেবা রেজিস্টার করা
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseRouting();
// Web API রাউটিং কনফিগার করা
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers(); // কন্ট্রোলার রাউটিং
});
}
এখানে, AddControllers()
মেথডটি Web API কন্ট্রোলারের জন্য সেবা নিবন্ধন করে এবং MapControllers()
মেথডটি কন্ট্রোলারগুলোর রাউটিং পরিচালনা করে।
Web API-তে ডেটা পাঠাতে এবং গ্রহণ করতে সাধারণত HTTP Client বা জাভাস্ক্রিপ্টের Fetch API ব্যবহার করা হয়। এখানে একটি উদাহরণ দেখানো হল কিভাবে ফ্রন্টএন্ড থেকে ASP.Net Core Web API কল করা যায়।
fetch('https://localhost:5001/api/products')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
using System.Net.Http;
using System.Threading.Tasks;
public class ProductService
{
private readonly HttpClient _httpClient;
public ProductService(HttpClient httpClient)
{
_httpClient = httpClient;
}
public async Task GetProducts()
{
var response = await _httpClient.GetAsync("https://localhost:5001/api/products");
var products = await response.Content.ReadAsStringAsync();
Console.WriteLine(products);
}
}
এখানে, HttpClient
ব্যবহার করে ASP.Net Core Web API এর GET
রিকোয়েস্ট পাঠানো হচ্ছে এবং JSON ডেটা রিটার্ন করা হচ্ছে।
ASP.Net Core Web API ব্যবহারের মাধ্যমে আপনি সার্ভার ও ক্লায়েন্টের মধ্যে ডেটা সহজে আদান-প্রদান করতে পারবেন। API কন্ট্রোলার, HTTP মেথড (GET, POST, PUT, DELETE), এবং ফ্রন্টএন্ড থেকে HTTP কলের মাধ্যমে আপনি সম্পূর্ণ রিসোর্সের ওপর CRUD অপারেশন করতে সক্ষম হবেন। Web API তৈরি করা সহজ এবং এটি মডার্ন ওয়েব অ্যাপ্লিকেশন ও মোবাইল অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য অত্যন্ত কার্যকর।
Read more